Variables:

Risk Age Sex Country

library(data.table)
library(tidyr)

#read the data (Wave 5)

# Data of Wave 5


WV5_data <- readRDS("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/F00007944-WV5_Data_R_v20180912.rds")


# Convert WV5_data-object in data.frame 
WV5_data_df <- as.data.frame(WV5_data)

# show first five columns
head(WV5_data_df[, 1:5])

clean the data set

library(dplyr)

#rename the variables
WV5_data <- WV5_data_df %>%
  rename(sex = V235, age = V237, country = V2, wave = V1, risk = V86)
WV5_data


#select only the variables of interest
WV5_data <- WV5_data %>%
  select(sex, age, country, wave, risk)
WV5_data
#decode the country names 
countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV5_data$country_lab = countrynames$name [match(WV5_data$country, countrynames$code)]
table(WV5_data$country_lab)

            Andorra           Argentina           Australia              Brazil            Bulgaria        Burkina Faso              Canada               Chile 
               1003                1002                1421                1500                1001                1534                2164                1000 
              China            Colombia          Cyprus (G)               Egypt            Ethiopia             Finland              France             Georgia 
               1991                3025                1050                3051                1500                1014                1001                1500 
            Germany               Ghana       Great Britain           Guatemala           Hong Kong             Hungary               India           Indonesia 
               2064                1534                1041                1000                1252                1007                2001                2015 
               Iran                Iraq               Italy               Japan              Jordan            Malaysia                Mali              Mexico 
               2667                2701                1012                1096                1200                1201                1534                1560 
            Moldova             Morocco         Netherlands         New Zealand              Norway                Peru              Poland             Romania 
               1046                1200                1050                 954                1025                1500                1000                1776 
             Russia              Rwanda            Slovenia        South Africa         South Korea               Spain              Sweden         Switzerland 
               2033                1507                1037                2988                1200                1200                1003                1241 
             Taiwan            Thailand Trinidad and Tobago              Turkey             Ukraine       United States             Uruguay            Viet Nam 
               1227                1534                1002                1346                1000                1249                1000                1495 
             Zambia 
               1500 
WV5_data
NA
NA

#Read Dataset (Wave 6)

WV6_data <- load("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/WV6_Data_R_v20201117.rdata") 
WV6_data <- WV6_Data_R_v20201117 
print(WV6_data)

#rename variables

WV6_data <- WV6_data %>%
  rename(wave = V1, sex = V240, age = V242,country = V2, risk = V76)


#select only the variables of interest
WV6_data <- WV6_data %>%
  select(wave, sex, age, country, sex,risk)
WV6_data
NA

#decode daraset (Wave 6)

countrynames = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countrynames.txt", header=FALSE,as.is=TRUE)
colnames(countrynames) = c("code", "name")
WV6_data$country_lab = countrynames$name [match(WV6_data$country, countrynames$code)]
table(WV6_data$country_lab)

            Algeria           Argentina             Armenia           Australia          Azerbaijan             Belarus              Brazil               Chile 
               1200                1030                1100                1477                1002                1535                1486                1000 
              China            Colombia          Cyprus (G)             Ecuador               Egypt             Estonia             Georgia             Germany 
               2300                1512                1000                1202                1523                1533                1202                2046 
              Ghana               Haiti           Hong Kong               India                Iraq               Japan              Jordan          Kazakhstan 
               1552                1996                1000                4078                1200                2443                1200                1500 
             Kuwait          Kyrgyzstan             Lebanon               Libya            Malaysia              Mexico             Morocco         Netherlands 
               1303                1500                1200                2131                1300                2000                1200                1902 
        New Zealand             Nigeria            Pakistan           Palestine                Peru         Philippines              Poland               Qatar 
                841                1759                1200                1000                1210                1200                 966                1060 
            Romania              Russia              Rwanda           Singapore            Slovenia        South Africa         South Korea               Spain 
               1503                2500                1527                1972                1069                3531                1200                1189 
             Sweden              Taiwan            Thailand Trinidad and Tobago             Tunisia              Turkey             Ukraine       United States 
               1206                1238                1200                 999                1205                1605                1500                2232 
            Uruguay          Uzbekistan               Yemen            Zimbabwe 
               1000                1500                1000                1500 
WV6_data

#combine the 2 dataset (Wave 6 + Wave 5)

WV5_data
WV6_data
data = rbind(WV5_data, WV6_data)
data

#number of countries

length(unique(data$country_lab))
[1] 80

#exclusion of participants and omission of missing data (na)

data = subset(data, risk > 0 & sex > 0 & age >0 )
data_Wave5 = subset(WV5_data, risk > 0 & sex > 0 & age >0 )
data_Wave6 = subset(WV6_data, risk > 0 & sex > 0 & age >0)
data <- na.omit(data)
data_Wave5 <- na.omit(data_Wave5)
data_Wave6 <- na.omit(data_Wave6)



#number of participants and number of participants per country

nrow(data)
[1] 156528
nrow(data_Wave5)
[1] 70308
nrow(data_Wave6)
[1] 86220
# Load the dplyr package
library(dplyr)

# Assuming the data frame is called 'data' and the column containing the country information is called 'country'
country_counts <- data %>%
  count(country_lab)

# Print the result
print(country_counts)
NA

#number and list and participants pro countries pro Wave (including both Waves together)

table(data_Wave5$country_lab)

            Andorra           Argentina           Australia              Brazil            Bulgaria        Burkina Faso              Canada               Chile 
               1001                 981                1381                1492                 942                1332                2121                 969 
              China          Cyprus (G)               Egypt            Ethiopia             Finland              France             Georgia             Germany 
               1898                1042                3026                1481                1013                 995                1451                2019 
              Ghana       Great Britain             Hungary               India           Indonesia                Iran               Japan              Jordan 
               1513                1036                1003                1575                1942                2615                1032                1163 
           Malaysia                Mali              Mexico             Moldova             Morocco         Netherlands              Norway                Peru 
               1200                1312                1505                1028                1145                1046                1019                1430 
             Poland             Romania              Russia              Rwanda            Slovenia        South Africa         South Korea               Spain 
                989                1583                1970                1409                1008                2945                1200                1184 
             Sweden         Switzerland              Taiwan            Thailand Trinidad and Tobago              Turkey             Ukraine       United States 
                997                1233                1225                1514                 997                1303                 967                1219 
            Uruguay            Viet Nam              Zambia 
                989                1416                1452 
length(unique(data_Wave5$country_lab)) 
[1] 51
table(data_Wave6$country_lab)

            Algeria           Argentina             Armenia           Australia          Azerbaijan             Belarus              Brazil               Chile 
               1115                1011                1090                1441                1002                1528                1481                 914 
              China            Colombia          Cyprus (G)             Ecuador               Egypt             Estonia             Georgia             Germany 
               2167                1506                 993                1201                1523                1509                1190                2024 
              Ghana               Haiti           Hong Kong               India                Iraq               Japan              Jordan          Kazakhstan 
               1552                1976                 977                3472                1187                2201                1195                1500 
             Kuwait          Kyrgyzstan             Lebanon               Libya            Malaysia              Mexico             Morocco         Netherlands 
               1190                1497                1177                2043                1300                1996                1035                1813 
        New Zealand             Nigeria            Pakistan           Palestine                Peru         Philippines              Poland               Qatar 
                802                1759                1176                 974                1158                1199                 950                1052 
            Romania              Russia              Rwanda           Singapore            Slovenia        South Africa         South Korea               Spain 
               1436                1806                1527                1938                1051                3481                1182                1173 
             Sweden              Taiwan            Thailand Trinidad and Tobago             Tunisia              Turkey             Ukraine       United States 
               1200                1195                1160                 983                1097                1573                1500                2189 
            Uruguay          Uzbekistan               Yemen            Zimbabwe 
                991                1433                 929                1500 
length(unique(data_Wave6$country_lab))
[1] 60
length(unique(data$country_lab)) 
[1] 77
table(data$country_lab)

            Algeria             Andorra           Argentina             Armenia           Australia          Azerbaijan             Belarus              Brazil 
               1115                1001                1992                1090                2822                1002                1528                2973 
           Bulgaria        Burkina Faso              Canada               Chile               China            Colombia          Cyprus (G)             Ecuador 
                942                1332                2121                1883                4065                1506                2035                1201 
              Egypt             Estonia            Ethiopia             Finland              France             Georgia             Germany               Ghana 
               4549                1509                1481                1013                 995                2641                4043                3065 
      Great Britain               Haiti           Hong Kong             Hungary               India           Indonesia                Iran                Iraq 
               1036                1976                 977                1003                5047                1942                2615                1187 
              Japan              Jordan          Kazakhstan              Kuwait          Kyrgyzstan             Lebanon               Libya            Malaysia 
               3233                2358                1500                1190                1497                1177                2043                2500 
               Mali              Mexico             Moldova             Morocco         Netherlands         New Zealand             Nigeria              Norway 
               1312                3501                1028                2180                2859                 802                1759                1019 
           Pakistan           Palestine                Peru         Philippines              Poland               Qatar             Romania              Russia 
               1176                 974                2588                1199                1939                1052                3019                3776 
             Rwanda           Singapore            Slovenia        South Africa         South Korea               Spain              Sweden         Switzerland 
               2936                1938                2059                6426                2382                2357                2197                1233 
             Taiwan            Thailand Trinidad and Tobago             Tunisia              Turkey             Ukraine       United States             Uruguay 
               2420                2674                1980                1097                2876                2467                3408                1980 
         Uzbekistan            Viet Nam               Yemen              Zambia            Zimbabwe 
               1433                1416                 929                1452                1500 
data$risk = 6 - data$risk + 1
data$risk_ord=data$risk 
data$risk = 10*scale(data$risk, center=TRUE,scale=TRUE)+50
data
NA
NA

#number of males vs females (1 = males; 2 = females)

table(data$sex)

    1     2 
75144 81384 
table(data_Wave5$sex)

    1     2 
33788 36520 
table(data_Wave6$sex)

    1     2 
41356 44864 
#create a categorical age variable
data$agecat[data$age<20]="15-19"
data$agecat[data$age>=20 & data$age <30] = "20-29"
data$agecat[data$age>=30 & data$age <40] = "30-39"
data$agecat[data$age>=40 & data$age <50] = "40-49"
data$agecat[data$age>=50 & data$age <60] = "50-59"
data$agecat[data$age>=60 & data$age <70] = "60-69"
data$agecat[data$age>=70 & data$age <80] = "70-79"
data$agecat[data$age>=80] = "80+"

#gender variables

data$sex[data$sex == 1] <- "male"
data$sex[data$sex == 2] <- "female"

data_Wave5$sex[data_Wave5$sex == 1] <- "male"
data_Wave5$sex[data_Wave5$sex == 2] <- "female"

data_Wave6$sex[data_Wave6$sex == 1] <- "male"
data_Wave6$sex[data_Wave6$sex == 2] <- "female"

#average age of participants
mean(data$age)
[1] 41.62343
median(data$age)
[1] 39

#wave variables

data$wave[data$wave == 5] <- "Wave 5"
data$wave[data$wave == 6] <- "Wave 6"
data

#age range

range(data$age) 
[1]  15 102
range(data_Wave5$age)
[1] 15 98
range(data_Wave6$age)
[1]  16 102

#risk taking Frequency

library(ggplot2)
ggplot(data, aes(x = risk)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Risk Taking", y = "Frequency", title = "Histogram of Risk Taking") +
  theme_minimal()

#age frequency

ggplot(data, aes(x = age)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", color = "black") +
  labs(x = "Age", y = "Frequency", title = "Histogram of Age Distributionn") +
  theme_minimal()

#age vs risk taking


ggplot(data, aes(x = agecat, y = risk)) +
  geom_boxplot() +
  labs(title = "Boxplot of Risk and Adventure by Age",
       x = "Age",
       y = "Risk and Adventure") +
  theme_minimal()

#sex vs risk taking

ggplot(data, aes(as.factor(sex), risk))+
  geom_boxplot()
#descriptive data 
summary(data)
#data cleaning: deletion of NAs 
data = na.omit(data)
summary(data)
#risk distribution according to Waves 5 and 6 
ggplot(data, aes(as.factor(wave), risk))+
  geom_boxplot()
#risk vs age
library(ggplot2)
ggplot(data, aes(risk, age))+
  geom_point()+
  geom_smooth(method = "lm")
#selected 3 countries: Andorra, Romania, Spain
data1 <- subset(data, country_lab %in% c("Andorra", "Romania", "Spain"))
# 3 risk distribution for 3 countries
ggplot(data1, aes(as.factor(country_lab), risk))+
  geom_boxplot()
#age vs risk depending on country
ggplot(data, aes(age, risk, color = as.factor(country_lab)))+
  geom_point()+
  geom_smooth(method = "lm", se = TRUE)
# read in file that contains hardship indicators manually collected from CIA factbook, WHO, and World Bank 
# (see Supplemental Materials for URL sources)
countryfacts = read.csv("/Users/cristinacandido/Documents/Github/risk_wvs/data/WVS/countryfacts_selection.csv", as.is = TRUE, header = TRUE) 

# Create a vector of labels with the same length as the number of columns in 'countryfacts'
labels <- c("code","country","codeWVS","Homicide","GDP","InfMort","LifeExp","GINI","GenderPEdu","code2")




# Print the result
print(countryfacts)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpWYXJpYWJsZXM6IAoKUmlzawpBZ2UgClNleApDb3VudHJ5CgoKCmBgYHtyfQpsaWJyYXJ5KGRhdGEudGFibGUpCmxpYnJhcnkodGlkeXIpCmBgYAoKI3JlYWQgdGhlIGRhdGEgKFdhdmUgNSkKYGBge3J9CiMgRGF0YSBvZiBXYXZlIDUKCgpXVjVfZGF0YSA8LSByZWFkUkRTKCIvVXNlcnMvY3Jpc3RpbmFjYW5kaWRvL0RvY3VtZW50cy9HaXRodWIvcmlza193dnMvZGF0YS9XVlMvRjAwMDA3OTQ0LVdWNV9EYXRhX1JfdjIwMTgwOTEyLnJkcyIpCgoKIyBDb252ZXJ0IFdWNV9kYXRhLW9iamVjdCBpbiBkYXRhLmZyYW1lIApXVjVfZGF0YV9kZiA8LSBhcy5kYXRhLmZyYW1lKFdWNV9kYXRhKQoKIyBzaG93IGZpcnN0IGZpdmUgY29sdW1ucwpoZWFkKFdWNV9kYXRhX2RmWywgMTo1XSkKYGBgCgojIGNsZWFuIHRoZSBkYXRhIHNldApgYGB7cn0KbGlicmFyeShkcGx5cikKCiNyZW5hbWUgdGhlIHZhcmlhYmxlcwpXVjVfZGF0YSA8LSBXVjVfZGF0YV9kZiAlPiUKICByZW5hbWUoc2V4ID0gVjIzNSwgYWdlID0gVjIzNywgY291bnRyeSA9IFYyLCB3YXZlID0gVjEsIHJpc2sgPSBWODYpCldWNV9kYXRhCgoKI3NlbGVjdCBvbmx5IHRoZSB2YXJpYWJsZXMgb2YgaW50ZXJlc3QKV1Y1X2RhdGEgPC0gV1Y1X2RhdGEgJT4lCiAgc2VsZWN0KHNleCwgYWdlLCBjb3VudHJ5LCB3YXZlLCByaXNrKQpXVjVfZGF0YQpgYGAKCmBgYHtyfQojZGVjb2RlIHRoZSBjb3VudHJ5IG5hbWVzIApjb3VudHJ5bmFtZXMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnluYW1lcy50eHQiLCBoZWFkZXI9RkFMU0UsYXMuaXM9VFJVRSkKY29sbmFtZXMoY291bnRyeW5hbWVzKSA9IGMoImNvZGUiLCAibmFtZSIpCldWNV9kYXRhJGNvdW50cnlfbGFiID0gY291bnRyeW5hbWVzJG5hbWUgW21hdGNoKFdWNV9kYXRhJGNvdW50cnksIGNvdW50cnluYW1lcyRjb2RlKV0KdGFibGUoV1Y1X2RhdGEkY291bnRyeV9sYWIpCldWNV9kYXRhCgoKYGBgCgojUmVhZCBEYXRhc2V0IChXYXZlIDYpCmBgYHtyfQpXVjZfZGF0YSA8LSBsb2FkKCIvVXNlcnMvY3Jpc3RpbmFjYW5kaWRvL0RvY3VtZW50cy9HaXRodWIvcmlza193dnMvZGF0YS9XVlMvV1Y2X0RhdGFfUl92MjAyMDExMTcucmRhdGEiKSAKV1Y2X2RhdGEgPC0gV1Y2X0RhdGFfUl92MjAyMDExMTcgCnByaW50KFdWNl9kYXRhKQpgYGAKCiNyZW5hbWUgdmFyaWFibGVzCmBgYHtyfQpXVjZfZGF0YSA8LSBXVjZfZGF0YSAlPiUKICByZW5hbWUod2F2ZSA9IFYxLCBzZXggPSBWMjQwLCBhZ2UgPSBWMjQyLGNvdW50cnkgPSBWMiwgcmlzayA9IFY3NikKCgojc2VsZWN0IG9ubHkgdGhlIHZhcmlhYmxlcyBvZiBpbnRlcmVzdApXVjZfZGF0YSA8LSBXVjZfZGF0YSAlPiUKICBzZWxlY3Qod2F2ZSwgc2V4LCBhZ2UsIGNvdW50cnksIHNleCxyaXNrKQpXVjZfZGF0YQoKYGBgCgoKI2RlY29kZSBkYXJhc2V0IChXYXZlIDYpCmBgYHtyfQpjb3VudHJ5bmFtZXMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnluYW1lcy50eHQiLCBoZWFkZXI9RkFMU0UsYXMuaXM9VFJVRSkKY29sbmFtZXMoY291bnRyeW5hbWVzKSA9IGMoImNvZGUiLCAibmFtZSIpCldWNl9kYXRhJGNvdW50cnlfbGFiID0gY291bnRyeW5hbWVzJG5hbWUgW21hdGNoKFdWNl9kYXRhJGNvdW50cnksIGNvdW50cnluYW1lcyRjb2RlKV0KdGFibGUoV1Y2X2RhdGEkY291bnRyeV9sYWIpCldWNl9kYXRhCmBgYAoKI2NvbWJpbmUgdGhlIDIgZGF0YXNldCAoV2F2ZSA2ICsgV2F2ZSA1KQpgYGB7cn0KV1Y1X2RhdGEKV1Y2X2RhdGEKZGF0YSA9IHJiaW5kKFdWNV9kYXRhLCBXVjZfZGF0YSkKZGF0YQoKI251bWJlciBvZiBjb3VudHJpZXMKCmxlbmd0aCh1bmlxdWUoZGF0YSRjb3VudHJ5X2xhYikpCmBgYAojZXhjbHVzaW9uIG9mIHBhcnRpY2lwYW50cyBhbmQgb21pc3Npb24gb2YgbWlzc2luZyBkYXRhIChuYSkKYGBge3J9CmRhdGEgPSBzdWJzZXQoZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wICkKZGF0YV9XYXZlNSA9IHN1YnNldChXVjVfZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wICkKZGF0YV9XYXZlNiA9IHN1YnNldChXVjZfZGF0YSwgcmlzayA+IDAgJiBzZXggPiAwICYgYWdlID4wKQpkYXRhIDwtIG5hLm9taXQoZGF0YSkKZGF0YV9XYXZlNSA8LSBuYS5vbWl0KGRhdGFfV2F2ZTUpCmRhdGFfV2F2ZTYgPC0gbmEub21pdChkYXRhX1dhdmU2KQoKCgojbnVtYmVyIG9mIHBhcnRpY2lwYW50cyBhbmQgbnVtYmVyIG9mIHBhcnRpY2lwYW50cyBwZXIgY291bnRyeQoKbnJvdyhkYXRhKQpucm93KGRhdGFfV2F2ZTUpCm5yb3coZGF0YV9XYXZlNikKYGBgCmBgYHtyfQojIExvYWQgdGhlIGRwbHlyIHBhY2thZ2UKbGlicmFyeShkcGx5cikKCiMgQXNzdW1pbmcgdGhlIGRhdGEgZnJhbWUgaXMgY2FsbGVkICdkYXRhJyBhbmQgdGhlIGNvbHVtbiBjb250YWluaW5nIHRoZSBjb3VudHJ5IGluZm9ybWF0aW9uIGlzIGNhbGxlZCAnY291bnRyeScKY291bnRyeV9jb3VudHMgPC0gZGF0YSAlPiUKICBjb3VudChjb3VudHJ5X2xhYikKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChjb3VudHJ5X2NvdW50cykKCmBgYAoKI251bWJlciBhbmQgbGlzdCBhbmQgcGFydGljaXBhbnRzIHBybyBjb3VudHJpZXMgcHJvIFdhdmUgKGluY2x1ZGluZyBib3RoIFdhdmVzIHRvZ2V0aGVyKQpgYGB7cn0KdGFibGUoZGF0YV9XYXZlNSRjb3VudHJ5X2xhYikKbGVuZ3RoKHVuaXF1ZShkYXRhX1dhdmU1JGNvdW50cnlfbGFiKSkgCnRhYmxlKGRhdGFfV2F2ZTYkY291bnRyeV9sYWIpCmxlbmd0aCh1bmlxdWUoZGF0YV9XYXZlNiRjb3VudHJ5X2xhYikpCmxlbmd0aCh1bmlxdWUoZGF0YSRjb3VudHJ5X2xhYikpIAp0YWJsZShkYXRhJGNvdW50cnlfbGFiKQpgYGAKCgpgYGB7cn0KZGF0YSRyaXNrID0gNiAtIGRhdGEkcmlzayArIDEKZGF0YSRyaXNrX29yZD1kYXRhJHJpc2sgCmRhdGEkcmlzayA9IDEwKnNjYWxlKGRhdGEkcmlzaywgY2VudGVyPVRSVUUsc2NhbGU9VFJVRSkrNTAKZGF0YQoKCmBgYAoKI251bWJlciBvZiBtYWxlcyB2cyBmZW1hbGVzICgxID0gbWFsZXM7IDIgPSBmZW1hbGVzKQpgYGB7cn0KdGFibGUoZGF0YSRzZXgpCnRhYmxlKGRhdGFfV2F2ZTUkc2V4KQp0YWJsZShkYXRhX1dhdmU2JHNleCkKYGBgCgoKYGBge3J9CiNjcmVhdGUgYSBjYXRlZ29yaWNhbCBhZ2UgdmFyaWFibGUKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U8MjBdPSIxNS0xOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTIwICYgZGF0YSRhZ2UgPDMwXSA9ICIyMC0yOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTMwICYgZGF0YSRhZ2UgPDQwXSA9ICIzMC0zOSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTQwICYgZGF0YSRhZ2UgPDUwXSA9ICI0MC00OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTUwICYgZGF0YSRhZ2UgPDYwXSA9ICI1MC01OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTYwICYgZGF0YSRhZ2UgPDcwXSA9ICI2MC02OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTcwICYgZGF0YSRhZ2UgPDgwXSA9ICI3MC03OSIKZGF0YSRhZ2VjYXRbZGF0YSRhZ2U+PTgwXSA9ICI4MCsiCmBgYAoKCiNnZW5kZXIgdmFyaWFibGVzCmBgYHtyfQpkYXRhJHNleFtkYXRhJHNleCA9PSAxXSA8LSAibWFsZSIKZGF0YSRzZXhbZGF0YSRzZXggPT0gMl0gPC0gImZlbWFsZSIKCmRhdGFfV2F2ZTUkc2V4W2RhdGFfV2F2ZTUkc2V4ID09IDFdIDwtICJtYWxlIgpkYXRhX1dhdmU1JHNleFtkYXRhX1dhdmU1JHNleCA9PSAyXSA8LSAiZmVtYWxlIgoKZGF0YV9XYXZlNiRzZXhbZGF0YV9XYXZlNiRzZXggPT0gMV0gPC0gIm1hbGUiCmRhdGFfV2F2ZTYkc2V4W2RhdGFfV2F2ZTYkc2V4ID09IDJdIDwtICJmZW1hbGUiCgojYXZlcmFnZSBhZ2Ugb2YgcGFydGljaXBhbnRzCm1lYW4oZGF0YSRhZ2UpCm1lZGlhbihkYXRhJGFnZSkKYGBgCgojd2F2ZSB2YXJpYWJsZXMKYGBge3J9CmRhdGEkd2F2ZVtkYXRhJHdhdmUgPT0gNV0gPC0gIldhdmUgNSIKZGF0YSR3YXZlW2RhdGEkd2F2ZSA9PSA2XSA8LSAiV2F2ZSA2IgpkYXRhCmBgYAoKCiNhZ2UgcmFuZ2UKYGBge3J9CnJhbmdlKGRhdGEkYWdlKSAKcmFuZ2UoZGF0YV9XYXZlNSRhZ2UpCnJhbmdlKGRhdGFfV2F2ZTYkYWdlKQpgYGAKI3Jpc2sgdGFraW5nIEZyZXF1ZW5jeQpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSByaXNrKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC41LCBmaWxsID0gImxpZ2h0Ymx1ZSIsIGNvbG9yID0gImJsYWNrIikgKwogIGxhYnMoeCA9ICJSaXNrIFRha2luZyIsIHkgPSAiRnJlcXVlbmN5IiwgdGl0bGUgPSAiSGlzdG9ncmFtIG9mIFJpc2sgVGFraW5nIikgKwogIHRoZW1lX21pbmltYWwoKQpgYGAKI2FnZSBmcmVxdWVuY3kKYGBge3J9CmdncGxvdChkYXRhLCBhZXMoeCA9IGFnZSkpICsKICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDAuNSwgZmlsbCA9ICJsaWdodGJsdWUiLCBjb2xvciA9ICJibGFjayIpICsKICBsYWJzKHggPSAiQWdlIiwgeSA9ICJGcmVxdWVuY3kiLCB0aXRsZSA9ICJIaXN0b2dyYW0gb2YgQWdlIERpc3RyaWJ1dGlvbm4iKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAojYWdlIHZzIHJpc2sgdGFraW5nCmBgYHtyfQoKZ2dwbG90KGRhdGEsIGFlcyh4ID0gYWdlY2F0LCB5ID0gcmlzaykpICsKICBnZW9tX2JveHBsb3QoKSArCiAgbGFicyh0aXRsZSA9ICJCb3hwbG90IG9mIFJpc2sgYW5kIEFkdmVudHVyZSBieSBBZ2UiLAogICAgICAgeCA9ICJBZ2UiLAogICAgICAgeSA9ICJSaXNrIGFuZCBBZHZlbnR1cmUiKSArCiAgdGhlbWVfbWluaW1hbCgpCgoKYGBgCiNzZXggdnMgcmlzayB0YWtpbmcKYGBge3J9CmdncGxvdChkYXRhLCBhZXMoYXMuZmFjdG9yKHNleCksIHJpc2spKSsKICBnZW9tX2JveHBsb3QoKQoKYGBgCmBgYHtyfQojZGVzY3JpcHRpdmUgZGF0YSAKc3VtbWFyeShkYXRhKQpgYGAKYGBge3J9CiNkYXRhIGNsZWFuaW5nOiBkZWxldGlvbiBvZiBOQXMgCmRhdGEgPSBuYS5vbWl0KGRhdGEpCnN1bW1hcnkoZGF0YSkKYGBgCmBgYHtyfQojcmlzayBkaXN0cmlidXRpb24gYWNjb3JkaW5nIHRvIFdhdmVzIDUgYW5kIDYgCmdncGxvdChkYXRhLCBhZXMoYXMuZmFjdG9yKHdhdmUpLCByaXNrKSkrCiAgZ2VvbV9ib3hwbG90KCkKYGBgCmBgYHtyfQojcmlzayB2cyBhZ2UKbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoZGF0YSwgYWVzKHJpc2ssIGFnZSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKQpgYGAKCgpgYGB7cn0KI3NlbGVjdGVkIDMgY291bnRyaWVzOiBBbmRvcnJhLCBSb21hbmlhLCBTcGFpbgpkYXRhMSA8LSBzdWJzZXQoZGF0YSwgY291bnRyeV9sYWIgJWluJSBjKCJBbmRvcnJhIiwgIlJvbWFuaWEiLCAiU3BhaW4iKSkKIyAzIHJpc2sgZGlzdHJpYnV0aW9uIGZvciAzIGNvdW50cmllcwpnZ3Bsb3QoZGF0YTEsIGFlcyhhcy5mYWN0b3IoY291bnRyeV9sYWIpLCByaXNrKSkrCiAgZ2VvbV9ib3hwbG90KCkKYGBgCmBgYHtyfQojYWdlIHZzIHJpc2sgZGVwZW5kaW5nIG9uIGNvdW50cnkKZ2dwbG90KGRhdGEsIGFlcyhhZ2UsIHJpc2ssIGNvbG9yID0gYXMuZmFjdG9yKGNvdW50cnlfbGFiKSkpKwogIGdlb21fcG9pbnQoKSsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IFRSVUUpCmBgYApgYGB7cn0KYGBgCgpgYGB7cn0KIyByZWFkIGluIGZpbGUgdGhhdCBjb250YWlucyBoYXJkc2hpcCBpbmRpY2F0b3JzIG1hbnVhbGx5IGNvbGxlY3RlZCBmcm9tIENJQSBmYWN0Ym9vaywgV0hPLCBhbmQgV29ybGQgQmFuayAKIyAoc2VlIFN1cHBsZW1lbnRhbCBNYXRlcmlhbHMgZm9yIFVSTCBzb3VyY2VzKQpjb3VudHJ5ZmFjdHMgPSByZWFkLmNzdigiL1VzZXJzL2NyaXN0aW5hY2FuZGlkby9Eb2N1bWVudHMvR2l0aHViL3Jpc2tfd3ZzL2RhdGEvV1ZTL2NvdW50cnlmYWN0c19zZWxlY3Rpb24uY3N2IiwgYXMuaXMgPSBUUlVFLCBoZWFkZXIgPSBUUlVFKSAKCiMgQ3JlYXRlIGEgdmVjdG9yIG9mIGxhYmVscyB3aXRoIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gJ2NvdW50cnlmYWN0cycKbGFiZWxzIDwtIGMoImNvZGUiLCJjb3VudHJ5IiwiY29kZVdWUyIsIkhvbWljaWRlIiwiR0RQIiwiSW5mTW9ydCIsIkxpZmVFeHAiLCJHSU5JIiwiR2VuZGVyUEVkdSIsImNvZGUyIikKCgoKCiMgUHJpbnQgdGhlIHJlc3VsdApwcmludChjb3VudHJ5ZmFjdHMpCmBgYAoKCgoKCgoKCgoKCgoKCgo=